Developers typically design Internet websites to be platform agnostic. This is done using web-based programming models, such as HyperText Markup Language (HTML), HyperText Markup Language Ver. 5(HTML5), or Cascading Style Sheets (CSS), representational state transfer web services, the JavaScript® scripting language from Oracle America, Inc. of Redwood shores, California, and the like. Such agnostic platform design allows all website visitors (i.e., users) to have a consistent experience regardless of the web browser application, computer operating system, and hardware platform employed by such various users. Similarly, web-based applications (e.g., Flash games, video players, audio players, mortgage calculators, etc.) are designed such that the programming model of the web-based application has a consistent experience for all users across all computing platforms. Alternatively, the developer may choose to limit the computing platform(s) the web-based application may be accessed from (e.g., by enforcing a “smartphones only” or a “tablet computers only” policy).
Generally, web browsers and web browser environments provide an isolated, Consistent rendering and application programming interface (API) for web-based applications that does not provide access to the computing device's underlying and/or local system device drivers, services, and/or operating system APIs. Rather, web-based programming models provide an isolated environment in which web-based applications can provide a defined set of functionality across a variety of computing device platforms. This is because if these web-based applications' software code were freely allowed to download and execute on the user's computing device, the software code could maliciously expose the memory, personal data, and/or operating system resources of the local computing device. Thus, in order to avoid compromising the user's computing device (or even remote computing devices in network communications with the user's computing device) from unknown, untrusted, and/or untested software code, these web-based applications often run in an isolated environment within the web browser environment.
Put another way, the isolated environment described above prevents web-based applications from accessing or making use of any underlying operating system services (e.g., drivers, APIs, reading and writing files, controlling input devices, etc.). Such an isolated environment, implemented by the above-mentioned web-based programming models, allows web-based applications to operate with limited, tightly-controlled resources. Thus, network access and access to the host system and operating system services are typically unavailable and/or prohibited.